%% -*- mode: Erlang; fill-column: 80; comment-column: 75; -*-
%% Dependencies ================================================================
{deps, [{erlware_commons, "1.0.0"},
        {providers, "1.6.0"},
        {getopt, "0.8.2"},
        {cf, "0.2.2"},
        {bbmustache, "1.0.4"}
       ]}.

{escript_incl_extra, [{"priv/templates/*", "."}]}.
{escript_emu_args, "%%! +sbtu +A0 -noinput\n"}.
{escript_incl_apps,
 [getopt, erlware_commons, cf, bbmustache, providers]}.

%% Compiler Options ============================================================
{erl_opts,
    [{platform_define, "^[0-9]+", namespaced_types},
     {platform_define, "^1[8|9]", rand_module},
     {platform_define, "^2", rand_module},
     warnings_as_errors,
     inline]}.

%% Use OTP 18+ when dialyzing relx
{dialyzer, [{warnings, [unknown]}]}.

%% EUnit =======================================================================
{eunit_opts,
 [{report, {eunit_surefire, [{dir, "."}]}}]}.

%% Profiles ====================================================================

{profiles, [{dev, [{plugins, [rebar3_neotoma_plugin]}]},

            {test, [{erl_opts, [nowarn_export_all, debug_info]}]},

            {dialyze, [{overrides, [{add, erlware_commons, [{erl_opts, [debug_info]}]},
                                    {add, providers, [{erl_opts, [debug_info]}]},
                                    {add, getopt, [{erl_opts, [debug_info]}]},
                                    {add, bbmustache, [{erl_opts, [debug_info]}]},
                                    {add, cf, [{erl_opts, [debug_info]}]}]},
                       {erl_opts, [debug_info]}]},
            {escript, [
                {overrides, [{add, erlware_commons, [{erl_opts, [no_debug_info]}]},
                             {add, providers, [{erl_opts, [no_debug_info]}]},
                             {add, getopt, [{erl_opts, [no_debug_info]}]},
                             {add, bbmustache, [{erl_opts, [no_debug_info]}]},
                             {add, cf, [{erl_opts, [no_debug_info]}]}]},
                {erl_opts, [no_debug_info]}
            ]}
           ]}.

{overrides, [{override, erlware_commons, [
                                         {erl_opts, [{platform_define, "^[0-9]+", namespaced_types},
                                                     {platform_define, "^R1[4|5]", deprecated_crypto},
                                                     {platform_define, "^((1[8|9])|2)", rand_module},
                                                     no_debug_info,
                                                     warnings_as_errors
                                                    ]},
                                         {deps, []}, {plugins, []}
                                         ]},
            {override, bbmustache, [
                                   {erl_opts, [no_debug_info]},
                                   {deps, []}, {plugins, []}]},
            {override, getopt, [{erl_opts, [no_debug_info]}]},
            {override, providers, [{erl_opts, [no_debug_info]}]}
            ]}.

{ct_opts, [{cover_spec, "cover.spec"}]}.

{cover_enabled, true}.
{cover_print_enabled, true}.
{cover_excl_mods, [bin_dtl, erl_script_dtl, extended_bin_dtl,
                   extended_bin_windows_dtl, erl_ini_dtl,
                   bin_windows_dtl, nodetool_dtl,
                   install_upgrade_escript_dtl, nodetool_dtl,
                   sys_config_dtl, vm_args_dtl, relx, rlx_topo]}.
